<?php
/**
 * dhpay php demo
 *
 * callback method
 *
 * author: lijie <lijierd@dhgate.com>
 * date:   2014.09.04
 */

/**
 * 回调方法会接受如下参数
 *
 * mechant_id: 商户号，对应商户提交的商户号
 * invoice_id: 交易号，对应商户提交的交易号
 * order_no: 订单号，对应商户提交的订单号
 * currency: 交易币种
 * amount: 交易金额
 * status: 交易状态(00处理中, 01成功, 02失败)
 * failure_reason: 如果交易状态为“失败”，则会有相应的失败原因
 * trans_date: 交易日期
 * trans_time: 交易时间
 * hash: 返回参数的签名
 */
$info='';
switch ($this->info->failure_reason) {
    case 'M0001':
        $info= '商户号错误';
        break;
    case 'M0002':
        $info= '交易号错误';
        break;
    case 'M0003':
        $info= '订单号错误';
        break;
    case 'M0004':
        $info= '卡号不合法';
        break;
    case 'M0005':
        $info= '过期年不合法';
        break;
    case 'M0006':
        $info= '过期月不合法';
        break;
    case 'M0007':
        $info= 'cvv 不合法';
        break;
    case 'M0008':
        $info= 'firstname 不合法 ';
        break;
    case 'M0009':
        $info= 'lastname 不合法 ';
        break;
    case 'M0010':
        $info= '币种不合法 ';
        break;
    case 'M0011':
        $info= '金额不合法，格式为数字且必须 带两位小数';
        break;
    case 'M0012':
        $info= '买家 ip 不合法 ';
        break;
    case 'M0013':
        $info= '买家邮箱不合法 ';
        break;
    case 'M0014':
        $info= '备注不合法';
        break;
    case 'M0015':
        $info= '签名不能为空';
        break;
    case 'M0016':
        $info= '签名验证失败';
        break;
    case 'M0017':
        $info= '单笔交易小于商户最小限额 ';
        break;
    case 'M0018':
        $info= '单笔交易大于商户最大限额 ';
        break;
    case 'M0019':
        $info= 'TOKEN 过长 ';
        break;
    case 'M0020':
        $info= '返回地址不合法 ';
        break;
    case 'M0021':
        $info= '货运国家不合法 ';
        break;
    case 'M0022':
        $info= '鉴权商户号与提交商户号不符 ';
        break;
    case 'M0023':
        $info= '交易号重复 ';
        break;
    case 'M0024':
        $info= '未匹配到原始交易 ';
        break;
    case 'M0025':
        $info= '线上退款不支持该卡种 ';
        break;
    case 'M0026':
        $info= '原始交易存在处理中的退款 ';
        break;
    case 'M0027':
        $info= '原始交易被拒付 ';
        break;
    case 'M0028':
        $info= 'AE 卡支付记录未登记汇率信息 ';
        break;
    case 'M0029':
        $info= '可退金额不足 ';
        break;
    case 'M0030':
        $info= '退款通道异常 ';
        break;
    case 'M0031':
        $info= '参数校验失败 ';
        break;
    case 'M0032':
        $info= '查询交易不存在 ';
        break;
    case 'M0033':
        $info= '账户余额不足';
        break;
    case 'M0034':
        $info= '账户处理失败 ';
        break;
    case 'M0035':
        $info= '退款提交银行异常';
        break;
    case 'M0036':
        $info= '获取汇率失败 ';
        break;
    case 'M0037':
        $info= '信用卡年月过期 ';
        break;
    case 'M0038':
        $info= '账单地址不合法 ';
        break;
    case 'M0039':
        $info= '账单国家不合法 ';
        break;
    case 'M0040':
        $info= '账单州不合法 ';
        break;
    case 'M0041':
        $info= '账单城市不合法';
        break;
    case 'M0042':
        $info= '账单邮编不合法';
        break;
    case 'M0043':
        $info= '账单电话不合法 ';
        break;
    case 'M0044':
        $info= '调用网关超时 ';
        break;
    case 'M0045':
        $info= '系统内部错误 ';
        break;
    case 'M0046':
        $info= 'TOKEN 验证失败，重复 TOKEN ';
        break;
    case 'M0047':
        $info= 'TOKEN 验证失败，TOKEN 不 一致';
        break;
    case 'M0048':
        $info= 'TOKEN 验证失败，TOKEN 失 效 ';
        break;
     case 'M0049':
        $info= 'TOKEN 验证失败 ';
        break;
    case 'M0150':
        $info= '字段不能为空 ';
        break;
    case 'M0151':
        $info= '商户状态不正常 ';
        break;
    case 'M0152':
        $info= '字段长度不正确 ';
        break;
    case 'M0153':
        $info= '商户平台订单号重复 ';
        break;
    case 'M0154':
        $info= 'Ip 受限，交易拒绝 ';
        break;
    case 'M0155':
        $info= '交易金额、运费等金额信息必须 为数字型，且小数点后只能保留 两位 ';
        break;
    case 'M0156':
        $info= '交易种类不合法 ';
        break;
    case 'M0157':
        $info= '卡类输入不合法 ';
        break;
    case 'M0158':
        $info= '支付卡号不合法 ';
        break;
    case 'M0159':
        $info= '支付卡安全码不合法 ';
        break;
    case 'M0160':
        $info= '信用卡有效年不合法 ';
        break;
    case 'M0161':
        $info= '信用卡有效月不合法 ';
        break;
    case 'M0162':
        $info= 'email 不合法  ';
        break;
    case 'M0163':
        $info= '固定电话不合法 ';
        break;
    case 'M0164':
        $info= '移动电话不合法 ';
        break;
    case 'M165':
        $info= '国家不合法 ';
        break;
    case 'M0166':
        $info= '产品代码不合法 ';
        break;
    case 'M0167':
        $info= '城市不合法 ';
        break;
    case 'M0168':
        $info= '防钓鱼非法字符输入，字段不合 法 ';
        break;
    case 'M0169':
        $info= '订单金额、运费以及产品单价数 量之间的关系检查失败（gate 不 用考虑） ';
        break;
    case 'M0170':
        $info= '支付方式检查失败 ';
        break;
    case 'M0171':
        $info= '交易金额必须大于最小费用 ';
        break;
    case 'M0172':
        $info= '输入不符合格格式或解释子订 单串出错（例如非分号分隔） ';
        break;
    case 'M0173':
        $info= '订单重复提交 ';
        break;
    case 'M0174':
        $info= '商户提交参数不合法 ';
        break;
    case 'M0175':
        $info= '商户订单号不合法 ';
        break;
    case 'M0176':
        $info= '商户号不合法 ';
        break;
    case 'M0177':
        $info= '商户不存在 ';
        break;
    case 'M0178':
        $info= '人名不合法 ';
        break;
    case 'M0179':
        $info= '人姓不合法 ';
        break;
    case 'M0180':
        $info= '州省不合法 ';
        break;
    case 'M0281':
        $info= '持卡人超过交易限制次数 ';
        break;
    case 'M5555':
        $info= '交易被发卡行拒绝 ';
        break;
    case 'M1083':
        $info= '信用卡已过期 ';
        break;
    case 'M1084':
        $info= '系统错误 ';
        break;
    case 'M1085':
        $info= '3D 验证失败 ';
        break;
    case 'M1086':
        $info= '交易超时 ';
        break;
    case 'M2087':
        $info= '高风险交易  ';
        break;
    case 'M2088':
        $info= '无效卡号';
        break;
    case 'M0091':
        $info= '商品名称不合法 ';
        break;
    case 'M0092':
        $info= '商品单价不合法 ';
        break;
    case 'M0093':
        $info= '商品数量不合法 ';
        break;
    default:
        break;
}

$error='';
switch ($this->error->status) {
    case '00':
        $error= '处理中';
        break;
    case '01':
        $error= '成功付款';
        break;
    case '02':
        $error= '付款失败, 失败原因为: ' . $info;
        break;
    default:
        break;
}

?>
<style>
.exception_marking{border:1px #F6C8B5 solid;background-color:#FCEEE8;padding:30px 0 30px 30px;width:968px;margin:30px auto;height:32px;}
.exception_marking i{float:left;height:32px;width:32px;background:url(../../images/share/msg_bg.gif) no-repeat 0 -400px;}
.exception_marking p{float:left;font-size:16px;line-height:32px;padding-left:20px;}

</style>
<div class="exception_marking">
        <i></i><p><?php echo $error; ?></p>
</div>
